AWS Route53 Constuct Library
To add a public hosted zone:
import route53 = require('@aws-cdk/aws-route53');
new route53.PublicHostedZone(this, 'HostedZone', {
zoneName: 'fully.qualified.domain.com'
});
To add a private hosted zone, use PrivateHostedZone
. Note that
enableDnsHostnames
and enableDnsSupport
must have been enabled for the
VPC you're configuring for private hosted zones.
import ec2 = require('@aws-cdk/aws-ec2');
import route53 = require('@aws-cdk/aws-route53');
const vpc = new ec2.VpcNetwork(this, 'VPC');
const zone = new route53.PrivateHostedZone(this, 'HostedZone', {
zoneName: 'fully.qualified.domain.com',
vpc
});
Additional VPCs can be added with zone.addVPC()
.
Adding Records
To add a TXT record to your zone:
import route53 = require('@aws-cdk/aws-route53');
new route53.TXTRecord(zone, 'TXTRecord', {
recordName: '_foo',
recordValue: 'Bar!',
ttl: 90,
});
Adding records to existing hosted zones
If you know the ID and Name of a Hosted Zone, you can import it directly:
const zone = HostedZoneRef.import(this, 'MyZone', {
zoneName: 'example.com',
hostedZoneId: 'ZOJJZC49E0EPZ',
});
If you don't know the ID of a Hosted Zone, you can use the HostedZoneProvider
to discover and import it:
const zone = new HostedZoneProvider(this, {
domainName: 'example.com'
}).findAndImport(this, 'MyZone');